package com.lmk.ms.common.mvc.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lmk.ms.common.dto.db.PageResult;
import com.lmk.ms.common.dto.db.QueryParams;
import com.lmk.ms.common.dto.db.Search;
import com.lmk.ms.common.dto.db.Sort;
import com.lmk.ms.common.dto.mvc.IdParameter;
import com.lmk.ms.common.dto.mvc.Meta;
import com.lmk.ms.common.entity.PkEntity;

import java.util.List;

/**
 * 基础的服务接口
 *
 * @author laomake@hotmail.com
 * @version 1.0
 * @date 2021/07/12
 */
public interface BaseService<T extends PkEntity> extends IService<T> {

    /**
     * 加载模块元素数据
     *
     * @return
     */
    Meta loadMetaInfo();

    /**
     * 使用MyBatisPlus的分页查询
     *
     * @param queryParams 分页参数
     * @param searchList  查询条件
     * @param sortList    排序条件
     * @return
     */
    PageResult<T> pageList(QueryParams queryParams, List<Search> searchList, List<Sort> sortList);

    /**
     * 切换对象的状态
     * @param parameter
     * @return
     */
    Boolean changeDbStatus(IdParameter parameter);
}
